package Cliente;

import java.io.ObjectOutputStream;

import jogoKing.leilao.JogadorOferta;

import baralho.carta.Carta;
import baralho.carta.Naipe;

import mensagem.JogadorJogou;
import mensagem.MObject;
import mensagem.MObjectArray;
import mensagem.MOferta;
import mensagem.MSimples;
import mensagem.MVencedorRonda;
import mensagem.TipoMiniJogo;

public interface Decisao {

	public void erro(String string);
	
	public void correLogin();

	public void informa(String string);

	public void mostraEstatistica(MSimples mensagem, ObjectOutputStream output);

	public void jogosAbertos(MSimples mensagem, ObjectOutputStream output);

	public void iniciaJogo(int id_jogo);

	public void jogaCarta();

	public void mostraVencedor(MVencedorRonda vencedorRonda);

	public void terminouMiniJogo(MObject<Boolean> retiraMensagem);

	public void actualizaMesa(MObject<JogadorJogou> retiraMensagem);

	public void recebeMao(Carta[] mao);

	public void setMiniJogoActual(TipoMiniJogo tipoMiniJogo);

	public void setJogadorActual(String jogadorActual);

	public void actualizaPontos(String[] nomes, int[] pontuacoes, int[]pontos);

	public void leilao433();

	public void haLeilao();

	public void aceitaOferta(MObject<Integer> mensagem);

	public void aumentaOferta(MOferta mensagem);

	public void donoLeilao(String dono);

	public void organizaNomes(String[] nomes);

	public void escolheTrunfo();

	public void fimLeilao();

	public void negativos();

	public void ofertaActual(MObject<JogadorOferta> mensagem);

	public void setOfertante(MObject<String> mensagem);

	public int getId();

	public void terminaJogo();

	public void regressoJogo(String[] estadoMesa, String jogadorActual,
			Carta[] mao, int[][] numeroCartasMaos, TipoMiniJogo tipoMiniJogo);

	public void novoJogoFechado(MSimples mensagem);

	public void trunfoPositivo(Naipe naipe);


	

}
